<template>
  <div class="app">
    <div v-if="isShowEdit">
      <input type="text" v-model="editValue" ref="inp" />
      <button>确认</button>
    </div>
    <div v-else>
      <span>{{ title }}</span>
      <button @click="updateShowEdit">编辑</button>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      title: '大标题',
      isShowEdit: false,
      editValue: '',
    }
  },
  methods: {
    updateShowEdit() {
      this.isShowEdit = true;
      // 页面dom是异步更新，所以下面的focus函数执行的时候可能还没准备好dom
      this.$nextTick(() => {
        // $nextTick可以在dom完成之后再执行内部函数逻辑
        this.$refs.inp.focus();
      })
    }
  },
}
</script>

<style>
</style>